/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package br.com.sigodonto.view.managedbean;

import br.com.sigodonto.model.dao.DaoGenerico;
import br.com.sigodonto.model.entity.Medicamento;
import java.io.Serializable;
import java.util.List;
import javax.faces.application.FacesMessage;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.ViewScoped;
import javax.faces.context.FacesContext;

/**
 *
 * @author Fidelis
 */
@ManagedBean
@ViewScoped
public class GerenciarPosologiasMB implements Serializable{

    /**
     * Creates a new instance of GerenciarPosologiasMB
     */
    
    private Medicamento medicamento;
    private Medicamento medicamentoSelecionado;
    private List<Medicamento> medicamentosTodos;
    private List<Medicamento> medicamentosFiltrados;
    private DaoGenerico daoGenerico;
    
    public GerenciarPosologiasMB() {
        this.medicamento = new Medicamento();
        this.medicamentoSelecionado = new Medicamento();
        this.daoGenerico = new DaoGenerico();
        this.medicamentosTodos = this.daoGenerico.listarTodos(Medicamento.class);
    }
    
    public void cadastrarMedicamento() {
        FacesMessage message = new FacesMessage();
        String msg = "POSOLOGIA CADASTRADA COM SUCESSO!";
        message.setSeverity(FacesMessage.SEVERITY_INFO);
        boolean certo;


        certo = this.daoGenerico.salvar(this.medicamento);

        if (!certo) {
            msg = "ERRO AO CADASTRAR POSOLOGIA!";
            message.setSeverity(FacesMessage.SEVERITY_ERROR);
        } else {
            this.medicamentosTodos = this.daoGenerico.listarTodos(Medicamento.class);
            this.medicamento = new Medicamento();
        }

        message.setSummary(msg);
        FacesContext.getCurrentInstance().addMessage(null, message);
    }
    
    public void excluirMedicamento() {
        if (this.medicamentoSelecionado != null) {
            String msg = "POSOLOGIA REMOVIDA COM SUCESSO!";
            FacesMessage message = new FacesMessage(msg);
            message.setSeverity(FacesMessage.SEVERITY_INFO);

            boolean certo = this.daoGenerico.remover(this.medicamentoSelecionado);

            if (!certo) {
                msg = "ERRO AO REMOVER POSOLOGIA!";
                message.setSummary(msg);
                message.setSeverity(FacesMessage.SEVERITY_ERROR);
            } else {
                this.medicamentosTodos = this.daoGenerico.listarTodos(Medicamento.class);
            }

            FacesContext.getCurrentInstance().addMessage(null, message);

        }
    }
    
    public void atualizarMedicamento() {
        if (this.medicamentoSelecionado != null) {
            this.medicamento = this.medicamentoSelecionado;
        }
    }

    public Medicamento getMedicamento() {
        return medicamento;
    }

    public void setMedicamento(Medicamento medicamento) {
        this.medicamento = medicamento;
    }

    public Medicamento getMedicamentoSelecionado() {
        return medicamentoSelecionado;
    }

    public void setMedicamentoSelecionado(Medicamento medicamentoSelecionado) {
        this.medicamentoSelecionado = medicamentoSelecionado;
    }

    public List<Medicamento> getMedicamentosTodos() {
        return medicamentosTodos;
    }

    public void setMedicamentosTodos(List<Medicamento> medicamentosTodos) {
        this.medicamentosTodos = medicamentosTodos;
    }

    public List<Medicamento> getMedicamentosFiltrados() {
        return medicamentosFiltrados;
    }

    public void setMedicamentosFiltrados(List<Medicamento> medicamentosFiltrados) {
        this.medicamentosFiltrados = medicamentosFiltrados;
    }
    
    
    
    
}
